package com.aistar.line.mapper;

import com.aistar.line.entity.Line;
import com.aistar.line.vo.LineSpotHotel;
import com.aistar.line.vo.Screen;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Set;


/**
 * @Description: java类作用描述:对路线信息的crud
 * @Author: tyg
 * @CreateDate: 2019/6/23 0023
 * @Version: 1.0
 */
public interface LineMapper {
    /**
     * 根据id查找路线信息
     *
     * @param id
     * @return
     */
    @Select("select * from line where line_id = #{id}")
    Line findById(String id);

    /**
     * 根据路线名称模糊查找路线信息
     *
     * @param lineName
     * @return
     */
    @Select("select * from line where line_name like concat('%',#{lineName},'%')")
    List<Line> findByLineName(String lineName);

    /**
     * 添加一个路线信息
     *
     * @param line
     */
    @Insert("insert into line values(#{lineId},#{lineName},#{lineNo},#{lineDays},#{lineEnd},#{lineShuoming},#{price},#{linetypeId},#{islike},#{star},#{tuijian},#{success},#{other1},#{other2},#{other3})")
    void save(Line line);

    /**
     * 根据id删除路线信息
     *
     * @param lineId
     */
    @Delete("delete from line where line_id = #{lineId}")
    void delById(String lineId);

    /**
     * 更新一个路线信息
     *
     * @param line
     */
    @Update("update line set line_name=#{line.lineName},line_no=#{line.lineNo},line_days=#{line.lineDays},line_end=#{line.lineEnd},line_shuoming=#{line.lineShuoming},price=#{line.price},lineType_id=#{line.linetypeId},islike=#{line.islike},star=#{line.star},tuijian=#{line.tuijian},success=#{success},other1=#{line.other1},other2=#{line.other2},other3=#{line.other3} where line_id = #{id}")
    void update(@Param("line") Line line, @Param("id") String id);


    /**
     * 条件筛选 - 目的地 游玩天数 价格
     *
     * @param city
     * @param days
     * @param priceMin
     * @param priceMax
     * @param ids
     * @return
     */
    List<Line> screen(@Param("city") String city, @Param("days") Integer days, @Param("priceMin") Integer priceMin, @Param("priceMax") Integer priceMax, @Param("ids") List<String> ids);

    /**
     * 查询该地区销量排行前3的路线产品的id
     *
     * @param city
     * @return
     */
    List<String> ranking(String city);

    /**
     * 根据路线id更新收藏数量
     * @param id
     * @return
     */
    @Update("update line set islike = islike + #{islike} where line_id = #{id}")
    boolean updateIslike(@Param("id") String id,@Param("islike") Integer islike);

}
